#pragma once

#include "includeBase.h"
#include "../common/BasePclModel.h"

class EstimatingSurfaceNormalsModel : public BasePclModel
{
public:
    EstimatingSurfaceNormalsModel();

public:
    static EstimatingSurfaceNormalsModel& get();

public: // IJsonSerializable
    void fromJson(const QJsonObject& json, QStringList& errorList) override;
    QJsonObject toJson() const override;

public: // Property
    QString pcdFile() const { return pcdFile_; }
    void setPcdFile(const QString& pcdFile) { pcdFile_ = pcdFile; }

    double radiusSearch() const { return radiusSearch_; }
    void setRadiusSearch(double radiusSearch) { radiusSearch_ = radiusSearch; }

    int level() const { return level_; }
    void setLevel(int level) { level_ = level; }

    double scale() const { return scale_; }
    void setScale(double scale) { scale_ = scale; }

private:
    QString pcdFile_ = "<pcl-data>/tutorials/ism_test_cat.pcd";

    double radiusSearch_ = 10;
    int level_ = 100;
    double scale_ = 8;
};
